package com.ecoolex.hotel.saas.ws;

import java.util.List;

import com.ecoolex.framework.common.exception.BizException;
import com.ecoolex.framework.common.pojo.Page;
import com.ecoolex.framework.common.pojo.Pagination;
import com.ecoolex.hotel.saas.entity.Department;
import com.ecoolex.hotel.saas.entity.Outlets;
import com.ecoolex.hotel.saas.entity.Store;
import com.ecoolex.hotel.saas.entity.StoreBrand;
import com.ecoolex.hotel.saas.entity.StoreOrderConfig;
import com.ecoolex.hotel.saas.entity.StoreWeixinConfig;
import com.ecoolex.hotel.saas.pojo.EditStoreOrderConfigDTO;
import com.ecoolex.hotel.saas.pojo.EditStoreStep;
import com.ecoolex.hotel.saas.pojo.EditStoreWeixinConfigDTO;
import com.ecoolex.hotel.saas.pojo.QueryStoreDTO;
import com.ecoolex.hotel.saas.pojo.StoreLicense;

public interface StoreService {

	Pagination<StoreBrand> queryStoreBrand(String name, Page page);

	StoreBrand getStoreBrand(Integer brandId);

	StoreBrand addStoreBrand(StoreBrand record, String createUser)  throws BizException;

	StoreBrand editStoreBrand(StoreBrand record, String updateUser) throws BizException;

	Boolean delStoreBrand(StoreBrand record, String updateUser) throws BizException;
	
	Pagination<Store> queryStore(QueryStoreDTO query, StoreLicense license, Page page);

	Store getStore(Integer storeId);
	
	Store updateStoreStep(EditStoreStep step, String updateUser) throws BizException;

	Boolean delStore(Store record, String updateUser) throws BizException;

	Store onlineStore(Store store, String updateUser) throws BizException;

	Store offlineStore(Store store, String updateUser) throws BizException;
	
	Department getDepartment(Integer departmentId, Integer storeId);
	
	Department getDepartment(Integer departmentId);
	
	Pagination<Department> queryDepartment(String name,Integer storeId,Page page);
	
	Department addDepartment(Department record, String createUser) throws BizException;
	
	Department editDepartment(Department record, String updateUser) throws BizException;
	
	Boolean delDepartment(Department record, String updateUser) throws BizException;
	
	List<Department> queryDepartmentByOutletsId(Integer outletsId);
	
	Outlets getOutlets(Integer outletsId, Integer storeId);
	
	Pagination<Outlets> queryOutlets(String name, Integer storeId, Page page);
	
	Outlets addOutlets(Outlets add, List<Integer> departmentIdList, String createUser) throws BizException;
	
	Outlets editOutlets(Outlets edit, List<Integer> departmentIdList, String updateUser) throws BizException;
	
	Boolean delOutlets(Outlets edit, String updateUser) throws BizException;
	
	StoreOrderConfig getStoreOrderConfig(Integer storeId);
	
	StoreOrderConfig editStoreOrderConfig(EditStoreOrderConfigDTO edit, String updateUser) throws BizException;
	
	StoreWeixinConfig getStoreWeixinConfig(Integer storeId);
	
	StoreWeixinConfig editStoreWeixinConfig(EditStoreWeixinConfigDTO edit, String updateUser) throws BizException;
}
